1 Extreme wildfire risk: KBDI ≥ 600

1.1 Descriptive statistics, aggregate

N wells in high wildfire risk areas (i.e., areas with KBDI ≥ 600):

  • 2017: 118409
  • 2050: 122186
  • 2090: 205670

N wells in high wildfire risk areas (i.e., areas with KBDI ≥ 600) and on federal lands:

  • 2017: 19893
  • 2050: 22248
  • 2090: 25828

1.2 Results, 2017 wildfire risk

Plot. KBDI in study region

Plot. Wells in high wildfire risk areas by state

Table. Wells in high wildfire risk areas by state

Table. Wells in high wildfire risk areas by county

Table. Wells in high wildfire risk areas by operator

1.3 Results, 2050 wildfire risk

Plot. KBDI in study region

Plot. Wells in high wildfire risk areas by state

Table. Wells in high wildfire risk areas by state

Table. Wells in high wildfire risk areas by county

Table. Wells in high wildfire risk areas by operator

1.4 Results, 2090 wildfire risk

Plot. KBDI in study region

Plot. Wells in high wildfire risk areas by state

Table. Wells in high wildfire risk areas by state

Table. Wells in high wildfire risk areas by county

Table. Wells in high wildfire risk areas by operator

2 Moderately high wildfire risk: KBDI ≥ 450

2.1 Descriptive statistics, aggregate

N wells in high wildfire risk areas (i.e., areas with KBDI ≥ 450):

  • 2017: 551676
  • 2050: 820554
  • 2090: 1193386

N wells in high wildfire risk areas (i.e., areas with KBDI ≥ 450) and located on federal lands:

  • 2017: 50185
  • 2050: 74741
  • 2090: 90737

2.2 Results, 2017 wildfire risk

Plot. KBDI in study region

Plot. Wells in high wildfire risk areas by state

Table. Wells in high wildfire risk areas by state


Restarting R session...

Table. Wells in high wildfire risk areas by county

Table. Wells in high wildfire risk areas by operator

2.3 Results, 2050 wildfire risk

Plot. KBDI in study region

Plot. Wells in high wildfire risk areas by state

Table. Wells in high wildfire risk areas by state

Table. Wells in high wildfire risk areas by county

Table. Wells in high wildfire risk areas by operator

2.4 Results, 2090 wildfire risk

Plot. KBDI in study region

Plot. Wells in high wildfire risk areas by state

Table. Wells in high wildfire risk areas by state

Table. Wells in high wildfire risk areas by county

Table. Wells in high wildfire risk areas by operator

LS0tCnRpdGxlOiAiUmVzdWx0czogV2lsZGZpcmVzIGluIGFyZWFzIHdpdGggcHJvamVjdGVkIHdpbGRmaXJlIHJpc2siCm91dHB1dDoKICBodG1sX25vdGVib29rOgogICAgdGhlbWU6IGZsYXRseQogICAgaGlnaGxpZ2h0OiBoYWRkb2NrIAogICAgdG9jOiB5ZXMKICAgIHRvY19kZXB0aDogMgogICAgdG9jX2Zsb2F0OiB5ZXMKICAgIG51bWJlcl9zZWN0aW9uczogdHJ1ZQotLS0KCmBgYHtyIHNldHVwLCBpbmNsdWRlPUZBTFNFfQojIGxvYWRzIG5lY2Vzc2FyeSBwYWNrYWdlcyBhbmQgZGVmaW5lcyBnbG9iYWwgdmFyaWFibGVzCnNvdXJjZSgiLi4vLi4vY29kZS8wLXNldHVwLzAxLXNldHVwLlIiKQpsaWJyYXJ5KCJ2aXJpZGlzIikKYGBgCgpgYGB7ciBkYXRhX2lucHV0LCBpbmNsdWRlPUZBTFNFfQp3ZWxsc19rYmRpIDwtIHJlYWRSRFMoIi4uLy4uL2RhdGEvcHJvY2Vzc2VkL3dlbGxzX2tiZGkucmRzIikKI3N0dWR5X3JlZ2lvbl9zZiA8LSByZWFkUkRTKCIuLi8uLi9kYXRhL2ludGVyaW0vc3R1ZHlfcmVnaW9uX3NmLnJkcyIpCnVzX3N0YXRlc193ZXN0IDwtIHN0X3JlYWQoIi4uLy4uL2RhdGEvcmF3L3VzX2NlbnN1cy90bF8yMDE4X3VzX3N0YXRlLnNocCIpICU+JSAKICBmaWx0ZXIoU1RVU1BTICVpbiUgYygiT1IiLCAiQ0EiLCAiTlYiLCAiQVoiLCAiTVQiLCAiV1kiLCAiVVQiLCAiQ08iLCAiTk0iLAogICAgICAgICAgICAgICAgICAgICAgICJORCIsIlNEIiwgIk5FIiwgIktTIiwgIk9LIiwgIlRYIiwgIk1PIiwgIkFSIiwgIkxBIikpICU+JQogIHN0X2dlb21ldHJ5KCkgJT4lCiAgc3RfdHJhbnNmb3JtKGNyc19hbGJlcnMpCmtiZGlfbWF4XzIwMTdfc2YgPC0gcmVhZFJEUygiLi4vLi4vZGF0YS9pbnRlcmltL2tiZGlfcmFzdGVycy9rYmRpX21heF8yMDE3LnJkcyIpICU+JSAKICBhc190aWJibGUoKSAlPiUKICBzdF9hc19zZihjb29yZHMgPSBjKCJ4IiwgInkiKSwgY3JzID0gY3JzX25hZDgzKSAlPiUgCiAgc3RfdHJhbnNmb3JtKGNyc19hbGJlcnMpICU+JSAKICBzdF9pbnRlcnNlY3Rpb24odXNfc3RhdGVzX3dlc3QpCmtiZGlfbWF4XzIwNTBfc2YgPC0gcmVhZFJEUygiLi4vLi4vZGF0YS9pbnRlcmltL2tiZGlfcmFzdGVycy9rYmRpX21heF8yMDUwLnJkcyIpICU+JSAKICBhc190aWJibGUoKSAlPiUKICBzdF9hc19zZihjb29yZHMgPSBjKCJ4IiwgInkiKSwgY3JzID0gY3JzX25hZDgzKSAlPiUgCiAgc3RfdHJhbnNmb3JtKGNyc19hbGJlcnMpICU+JSAKICBzdF9pbnRlcnNlY3Rpb24odXNfc3RhdGVzX3dlc3QpCmtiZGlfbWF4XzIwOTBfc2YgPC0gcmVhZFJEUygiLi4vLi4vZGF0YS9pbnRlcmltL2tiZGlfcmFzdGVycy9rYmRpX21heF8yMDkwLnJkcyIpICU+JSAKICBhc190aWJibGUoKSAlPiUKICBzdF9hc19zZihjb29yZHMgPSBjKCJ4IiwgInkiKSwgY3JzID0gY3JzX25hZDgzKSAlPiUgCiAgc3RfdHJhbnNmb3JtKGNyc19hbGJlcnMpICU+JSAKICBzdF9pbnRlcnNlY3Rpb24odXNfc3RhdGVzX3dlc3QpCmBgYAoKCiMgRXh0cmVtZSB3aWxkZmlyZSByaXNrOiBLQkRJIOKJpSA2MDAKCiMjIERlc2NyaXB0aXZlIHN0YXRpc3RpY3MsIGFnZ3JlZ2F0ZQoKTiB3ZWxscyBpbiBoaWdoIHdpbGRmaXJlIHJpc2sgYXJlYXMgKGkuZS4sIGFyZWFzIHdpdGggS0JESSDiiaUgNjAwKToKCi0gMjAxNzogYHIgd2VsbHNfa2JkaSAlPiUgZmlsdGVyKGtiZGlfbWF4XzIwMTcgPj0gNjAwKSAlPiUgbnJvd2AKLSAyMDUwOiBgciB3ZWxsc19rYmRpICU+JSBmaWx0ZXIoa2JkaV9tYXhfMjA1MCA+PSA2MDApICU+JSBucm93YAotIDIwOTA6IGByIHdlbGxzX2tiZGkgJT4lIGZpbHRlcihrYmRpX21heF8yMDkwID49IDYwMCkgJT4lIG5yb3dgCgpOIHdlbGxzIGluIGhpZ2ggd2lsZGZpcmUgcmlzayBhcmVhcyAoaS5lLiwgYXJlYXMgd2l0aCBLQkRJIOKJpSA2MDApICphbmQqIG9uIGZlZGVyYWwgbGFuZHM6CgotIDIwMTc6IGByIHdlbGxzX2tiZGkgJT4lIGZpbHRlcih3ZWxsX29uX2ZlZGVyYWxfbGFuZCA9PSAxKSAlPiUgZmlsdGVyKGtiZGlfbWF4XzIwMTcgPj0gNjAwKSAlPiUgbnJvd2AKLSAyMDUwOiBgciB3ZWxsc19rYmRpICU+JSBmaWx0ZXIod2VsbF9vbl9mZWRlcmFsX2xhbmQgPT0gMSkgJT4lIGZpbHRlcihrYmRpX21heF8yMDUwID49IDYwMCkgJT4lIG5yb3dgCi0gMjA5MDogYHIgd2VsbHNfa2JkaSAlPiUgZmlsdGVyKHdlbGxfb25fZmVkZXJhbF9sYW5kID09IDEpICU+JSBmaWx0ZXIoa2JkaV9tYXhfMjA5MCA+PSA2MDApICU+JSBucm93YAoKCiMjIFJlc3VsdHMsIDIwMTcgd2lsZGZpcmUgcmlzawoKKipQbG90LiBLQkRJIGluIHN0dWR5IHJlZ2lvbioqCgpgYGB7ciBlY2hvPUZBTFNFfQpnZ3Bsb3QoKSArCiAgZ2VvbV9zZihkYXRhID0ga2JkaV9tYXhfMjAxN19zZiwgYWVzKGNvbG9yID0ga2JkaV9tYXhfMjAxNykpICsKICBzY2FsZV9jb2xvcl92aXJpZGlzKG9wdGlvbiA9ICJCIikgKwogIGdlb21fc2YoZGF0YSA9IHVzX3N0YXRlc193ZXN0LCBjb2xvciA9ICJ3aGl0ZSIsIGZpbGwgPSBOQSkgKwogIGxhYnMoY29sb3IgPSAiS0JESSIpICsKICB0aGVtZV9taW5pbWFsKCkKYGBgCgoKKipQbG90LiBXZWxscyBpbiBoaWdoIHdpbGRmaXJlIHJpc2sgYXJlYXMgYnkgc3RhdGUqKgoKYGBge3IgZWNobz1GQUxTRX0Kd2VsbHNfa2JkaSAlPiUgCiAgZmlsdGVyKGtiZGlfbWF4XzIwMTcgPj0gNjAwKSAlPiUgCiAgZ3JvdXBfYnkoc3RhdGUpICU+JSAKICBzdW1tYXJpemUobiA9IG4oKSkgJT4lIAogIGdncGxvdCgpICsKICBnZW9tX2JhcihhZXMoc3RhdGUsIG4pLCBzdGF0ID0gImlkZW50aXR5IikgKwogIHRoZW1lX2NsYXNzaWMoKQpgYGAKCioqVGFibGUuIFdlbGxzIGluIGhpZ2ggd2lsZGZpcmUgcmlzayBhcmVhcyBieSBzdGF0ZSoqCgpgYGB7ciBlY2hvPUZBTFNFfQp3ZWxsc19rYmRpICU+JSAKICBmaWx0ZXIoa2JkaV9tYXhfMjAxNyA+PSA2MDApICU+JSAKICBncm91cF9ieShzdGF0ZSkgJT4lIAogIHN1bW1hcml6ZShuID0gbigpKSAjJT4lIAogICNhcnJhbmdlKGRlc2MobikpCmBgYAoKKipUYWJsZS4gV2VsbHMgaW4gaGlnaCB3aWxkZmlyZSByaXNrIGFyZWFzIGJ5IGNvdW50eSoqCgpgYGB7ciBlY2hvPUZBTFNFfQp3ZWxsc19rYmRpICU+JSAKICBmaWx0ZXIoa2JkaV9tYXhfMjAxNyA+PSA2MDApICU+JSAKICBncm91cF9ieShjb3VudHlfcGFyaXNoKSAlPiUgCiAgc3VtbWFyaXplKG4gPSBuKCkpICU+JSAKICBhcnJhbmdlKGRlc2MobikpCmBgYAoKKipUYWJsZS4gV2VsbHMgaW4gaGlnaCB3aWxkZmlyZSByaXNrIGFyZWFzIGJ5IG9wZXJhdG9yKioKCmBgYHtyIGVjaG89RkFMU0V9CndlbGxzX2tiZGkgJT4lIAogIGZpbHRlcihrYmRpX21heF8yMDE3ID49IDYwMCkgJT4lIAogIGdyb3VwX2J5KG9wZXJhdG9yKSAlPiUgCiAgc3VtbWFyaXplKG4gPSBuKCkpICU+JSAKICBhcnJhbmdlKGRlc2MobikpCmBgYAoKCiMjIFJlc3VsdHMsIDIwNTAgd2lsZGZpcmUgcmlzawoKKipQbG90LiBLQkRJIGluIHN0dWR5IHJlZ2lvbioqCgpgYGB7ciBlY2hvPUZBTFNFfQpnZ3Bsb3QoKSArCiAgZ2VvbV9zZihkYXRhID0ga2JkaV9tYXhfMjA1MF9zZiwgYWVzKGNvbG9yID0ga2JkaV9tYXhfMjA1MCkpICsKICBzY2FsZV9jb2xvcl92aXJpZGlzKG9wdGlvbiA9ICJCIikgKwogIGdlb21fc2YoZGF0YSA9IHVzX3N0YXRlc193ZXN0LCBjb2xvciA9ICJ3aGl0ZSIsIGZpbGwgPSBOQSkgKwogIGxhYnMoY29sb3IgPSAiS0JESSIpICsKICB0aGVtZV9taW5pbWFsKCkKYGBgCgoqKlBsb3QuIFdlbGxzIGluIGhpZ2ggd2lsZGZpcmUgcmlzayBhcmVhcyBieSBzdGF0ZSoqCgpgYGB7ciBlY2hvPUZBTFNFfQp3ZWxsc19rYmRpICU+JSAKICBmaWx0ZXIoa2JkaV9tYXhfMjA1MCA+PSA2MDApICU+JSAKICBncm91cF9ieShzdGF0ZSkgJT4lIAogIHN1bW1hcml6ZShuID0gbigpKSAlPiUgCiAgZ2dwbG90KCkgKwogIGdlb21fYmFyKGFlcyhzdGF0ZSwgbiksIHN0YXQgPSAiaWRlbnRpdHkiKSArCiAgdGhlbWVfY2xhc3NpYygpCmBgYAoKKipUYWJsZS4gV2VsbHMgaW4gaGlnaCB3aWxkZmlyZSByaXNrIGFyZWFzIGJ5IHN0YXRlKioKCmBgYHtyIGVjaG89RkFMU0V9CndlbGxzX2tiZGkgJT4lIAogIGZpbHRlcihrYmRpX21heF8yMDUwID49IDYwMCkgJT4lIAogIGdyb3VwX2J5KHN0YXRlKSAlPiUgCiAgc3VtbWFyaXplKG4gPSBuKCkpICU+JSAKICBhcnJhbmdlKGRlc2MobikpCmBgYAoKKipUYWJsZS4gV2VsbHMgaW4gaGlnaCB3aWxkZmlyZSByaXNrIGFyZWFzIGJ5IGNvdW50eSoqCgpgYGB7ciBlY2hvPUZBTFNFfQp3ZWxsc19rYmRpICU+JSAKICBmaWx0ZXIoa2JkaV9tYXhfMjA1MCA+PSA2MDApICU+JSAKICBncm91cF9ieShjb3VudHlfcGFyaXNoKSAlPiUgCiAgc3VtbWFyaXplKG4gPSBuKCkpICU+JSAKICBhcnJhbmdlKGRlc2MobikpCmBgYAoKKipUYWJsZS4gV2VsbHMgaW4gaGlnaCB3aWxkZmlyZSByaXNrIGFyZWFzIGJ5IG9wZXJhdG9yKioKCmBgYHtyIGVjaG89RkFMU0V9CndlbGxzX2tiZGkgJT4lIAogIGZpbHRlcihrYmRpX21heF8yMDUwID49IDYwMCkgJT4lIAogIGdyb3VwX2J5KG9wZXJhdG9yKSAlPiUgCiAgc3VtbWFyaXplKG4gPSBuKCkpICU+JSAKICBhcnJhbmdlKGRlc2MobikpCmBgYAoKCiMjIFJlc3VsdHMsIDIwOTAgd2lsZGZpcmUgcmlzawoKKipQbG90LiBLQkRJIGluIHN0dWR5IHJlZ2lvbioqCgpgYGB7ciBlY2hvPUZBTFNFfQpnZ3Bsb3QoKSArCiAgZ2VvbV9zZihkYXRhID0ga2JkaV9tYXhfMjA5MF9zZiwgYWVzKGNvbG9yID0ga2JkaV9tYXhfMjA5MCkpICsKICBzY2FsZV9jb2xvcl92aXJpZGlzKG9wdGlvbiA9ICJCIikgKwogIGdlb21fc2YoZGF0YSA9IHVzX3N0YXRlc193ZXN0LCBjb2xvciA9ICJ3aGl0ZSIsIGZpbGwgPSBOQSkgKwogIGxhYnMoY29sb3IgPSAiS0JESSIpICsKICB0aGVtZV9taW5pbWFsKCkKYGBgCgoqKlBsb3QuIFdlbGxzIGluIGhpZ2ggd2lsZGZpcmUgcmlzayBhcmVhcyBieSBzdGF0ZSoqCgpgYGB7ciBlY2hvPUZBTFNFfQp3ZWxsc19rYmRpICU+JSAKICBmaWx0ZXIoa2JkaV9tYXhfMjA5MCA+PSA2MDApICU+JSAKICBncm91cF9ieShzdGF0ZSkgJT4lIAogIHN1bW1hcml6ZShuID0gbigpKSAlPiUgCiAgZ2dwbG90KCkgKwogIGdlb21fYmFyKGFlcyhzdGF0ZSwgbiksIHN0YXQgPSAiaWRlbnRpdHkiKSArCiAgdGhlbWVfY2xhc3NpYygpCmBgYAoKKipUYWJsZS4gV2VsbHMgaW4gaGlnaCB3aWxkZmlyZSByaXNrIGFyZWFzIGJ5IHN0YXRlKioKCmBgYHtyIGVjaG89RkFMU0V9CndlbGxzX2tiZGkgJT4lIAogIGZpbHRlcihrYmRpX21heF8yMDkwID49IDYwMCkgJT4lIAogIGdyb3VwX2J5KHN0YXRlKSAlPiUgCiAgc3VtbWFyaXplKG4gPSBuKCkpICMlPiUgCiAgI2FycmFuZ2UoZGVzYyhuKSkKYGBgCgoqKlRhYmxlLiBXZWxscyBpbiBoaWdoIHdpbGRmaXJlIHJpc2sgYXJlYXMgYnkgY291bnR5KioKCmBgYHtyIGVjaG89RkFMU0V9CndlbGxzX2tiZGkgJT4lIAogIGZpbHRlcihrYmRpX21heF8yMDkwID49IDYwMCkgJT4lIAogIGdyb3VwX2J5KGNvdW50eV9wYXJpc2gpICU+JSAKICBzdW1tYXJpemUobiA9IG4oKSkgJT4lIAogIGFycmFuZ2UoZGVzYyhuKSkKYGBgCgoqKlRhYmxlLiBXZWxscyBpbiBoaWdoIHdpbGRmaXJlIHJpc2sgYXJlYXMgYnkgb3BlcmF0b3IqKgoKYGBge3IgZWNobz1GQUxTRX0Kd2VsbHNfa2JkaSAlPiUgCiAgZmlsdGVyKGtiZGlfbWF4XzIwOTAgPj0gNjAwKSAlPiUgCiAgZ3JvdXBfYnkob3BlcmF0b3IpICU+JSAKICBzdW1tYXJpemUobiA9IG4oKSkgJT4lIAogIGFycmFuZ2UoZGVzYyhuKSkKYGBgCgojIE1vZGVyYXRlbHkgaGlnaCB3aWxkZmlyZSByaXNrOiBLQkRJIOKJpSA0NTAKCiMjIERlc2NyaXB0aXZlIHN0YXRpc3RpY3MsIGFnZ3JlZ2F0ZQoKTiB3ZWxscyBpbiBoaWdoIHdpbGRmaXJlIHJpc2sgYXJlYXMgKGkuZS4sIGFyZWFzIHdpdGggS0JESSDiiaUgNDUwKToKCi0gMjAxNzogYHIgd2VsbHNfa2JkaSAlPiUgZmlsdGVyKGtiZGlfbWF4XzIwMTcgPj0gNDUwKSAlPiUgbnJvd2AKLSAyMDUwOiBgciB3ZWxsc19rYmRpICU+JSBmaWx0ZXIoa2JkaV9tYXhfMjA1MCA+PSA0NTApICU+JSBucm93YAotIDIwOTA6IGByIHdlbGxzX2tiZGkgJT4lIGZpbHRlcihrYmRpX21heF8yMDkwID49IDQ1MCkgJT4lIG5yb3dgCgpOIHdlbGxzIGluIGhpZ2ggd2lsZGZpcmUgcmlzayBhcmVhcyAoaS5lLiwgYXJlYXMgd2l0aCBLQkRJIOKJpSA0NTApICphbmQqIGxvY2F0ZWQgb24gZmVkZXJhbCBsYW5kczoKCi0gMjAxNzogYHIgd2VsbHNfa2JkaSAlPiUgZmlsdGVyKHdlbGxfb25fZmVkZXJhbF9sYW5kID09IDEpICU+JSBmaWx0ZXIoa2JkaV9tYXhfMjAxNyA+PSA0NTApICU+JSBucm93YAotIDIwNTA6IGByIHdlbGxzX2tiZGkgJT4lIGZpbHRlcih3ZWxsX29uX2ZlZGVyYWxfbGFuZCA9PSAxKSAlPiUgZmlsdGVyKGtiZGlfbWF4XzIwNTAgPj0gNDUwKSAlPiUgbnJvd2AKLSAyMDkwOiBgciB3ZWxsc19rYmRpICU+JSBmaWx0ZXIod2VsbF9vbl9mZWRlcmFsX2xhbmQgPT0gMSkgJT4lIGZpbHRlcihrYmRpX21heF8yMDkwID49IDQ1MCkgJT4lIG5yb3dgCgojIyBSZXN1bHRzLCAyMDE3IHdpbGRmaXJlIHJpc2sKCioqUGxvdC4gS0JESSBpbiBzdHVkeSByZWdpb24qKgoKYGBge3IgZWNobz1GQUxTRX0KZ2dwbG90KCkgKwogIGdlb21fc2YoZGF0YSA9IGtiZGlfbWF4XzIwMTdfc2YsIGFlcyhjb2xvciA9IGtiZGlfbWF4XzIwMTcpKSArCiAgc2NhbGVfY29sb3JfdmlyaWRpcyhvcHRpb24gPSAiQiIpICsKICBnZW9tX3NmKGRhdGEgPSB1c19zdGF0ZXNfd2VzdCwgY29sb3IgPSAid2hpdGUiLCBmaWxsID0gTkEpICsKICBsYWJzKGNvbG9yID0gIktCREkiKSArCiAgdGhlbWVfbWluaW1hbCgpCmBgYAoKKipQbG90LiBXZWxscyBpbiBoaWdoIHdpbGRmaXJlIHJpc2sgYXJlYXMgYnkgc3RhdGUqKgoKYGBge3IgZWNobz1GQUxTRX0Kd2VsbHNfa2JkaSAlPiUgCiAgZmlsdGVyKGtiZGlfbWF4XzIwMTcgPj0gNDUwKSAlPiUgCiAgZ3JvdXBfYnkoc3RhdGUpICU+JSAKICBzdW1tYXJpemUobiA9IG4oKSkgJT4lIAogIGdncGxvdCgpICsKICBnZW9tX2JhcihhZXMoc3RhdGUsIG4pLCBzdGF0ID0gImlkZW50aXR5IikgKwogIHRoZW1lX2NsYXNzaWMoKQpgYGAKCioqVGFibGUuIFdlbGxzIGluIGhpZ2ggd2lsZGZpcmUgcmlzayBhcmVhcyBieSBzdGF0ZSoqCgpgYGB7ciBlY2hvPUZBTFNFfQp3ZWxsc19rYmRpICU+JSAKICBmaWx0ZXIoa2JkaV9tYXhfMjAxNyA+PSA0NTApICU+JSAKICBncm91cF9ieShzdGF0ZSkgJT4lIAogIHN1bW1hcml6ZShuID0gbigpKSAjJT4lIAogICNhcnJhbmdlKGRlc2MobikpCmBgYAoKKipUYWJsZS4gV2VsbHMgaW4gaGlnaCB3aWxkZmlyZSByaXNrIGFyZWFzIGJ5IGNvdW50eSoqCgpgYGB7ciBlY2hvPUZBTFNFfQp3ZWxsc19rYmRpICU+JSAKICBmaWx0ZXIoa2JkaV9tYXhfMjAxNyA+PSA0NTApICU+JSAKICBncm91cF9ieShjb3VudHlfcGFyaXNoKSAlPiUgCiAgc3VtbWFyaXplKG4gPSBuKCkpICU+JSAKICBhcnJhbmdlKGRlc2MobikpCmBgYAoKKipUYWJsZS4gV2VsbHMgaW4gaGlnaCB3aWxkZmlyZSByaXNrIGFyZWFzIGJ5IG9wZXJhdG9yKioKCmBgYHtyIGVjaG89RkFMU0V9CndlbGxzX2tiZGkgJT4lIAogIGZpbHRlcihrYmRpX21heF8yMDE3ID49IDQ1MCkgJT4lIAogIGdyb3VwX2J5KG9wZXJhdG9yKSAlPiUgCiAgc3VtbWFyaXplKG4gPSBuKCkpICU+JSAKICBhcnJhbmdlKGRlc2MobikpCmBgYAoKIyMgUmVzdWx0cywgMjA1MCB3aWxkZmlyZSByaXNrCgoqKlBsb3QuIEtCREkgaW4gc3R1ZHkgcmVnaW9uKioKCmBgYHtyIGVjaG89RkFMU0V9CmdncGxvdCgpICsKICBnZW9tX3NmKGRhdGEgPSBrYmRpX21heF8yMDUwX3NmLCBhZXMoY29sb3IgPSBrYmRpX21heF8yMDUwKSkgKwogIHNjYWxlX2NvbG9yX3ZpcmlkaXMob3B0aW9uID0gIkIiKSArCiAgZ2VvbV9zZihkYXRhID0gdXNfc3RhdGVzX3dlc3QsIGNvbG9yID0gIndoaXRlIiwgZmlsbCA9IE5BKSArCiAgbGFicyhjb2xvciA9ICJLQkRJIikgKwogIHRoZW1lX21pbmltYWwoKQpgYGAKCioqUGxvdC4gV2VsbHMgaW4gaGlnaCB3aWxkZmlyZSByaXNrIGFyZWFzIGJ5IHN0YXRlKioKCmBgYHtyIGVjaG89RkFMU0V9CndlbGxzX2tiZGkgJT4lIAogIGZpbHRlcihrYmRpX21heF8yMDUwID49IDQ1MCkgJT4lIAogIGdyb3VwX2J5KHN0YXRlKSAlPiUgCiAgc3VtbWFyaXplKG4gPSBuKCkpICU+JSAKICBnZ3Bsb3QoKSArCiAgZ2VvbV9iYXIoYWVzKHN0YXRlLCBuKSwgc3RhdCA9ICJpZGVudGl0eSIpICsKICB0aGVtZV9jbGFzc2ljKCkKYGBgCgoqKlRhYmxlLiBXZWxscyBpbiBoaWdoIHdpbGRmaXJlIHJpc2sgYXJlYXMgYnkgc3RhdGUqKgoKYGBge3IgZWNobz1GQUxTRX0Kd2VsbHNfa2JkaSAlPiUgCiAgZmlsdGVyKGtiZGlfbWF4XzIwNTAgPj0gNDUwKSAlPiUgCiAgZ3JvdXBfYnkoc3RhdGUpICU+JSAKICBzdW1tYXJpemUobiA9IG4oKSkgJT4lIAogIGFycmFuZ2UoZGVzYyhuKSkKYGBgCgoqKlRhYmxlLiBXZWxscyBpbiBoaWdoIHdpbGRmaXJlIHJpc2sgYXJlYXMgYnkgY291bnR5KioKCmBgYHtyIGVjaG89RkFMU0V9CndlbGxzX2tiZGkgJT4lIAogIGZpbHRlcihrYmRpX21heF8yMDUwID49IDQ1MCkgJT4lIAogIGdyb3VwX2J5KGNvdW50eV9wYXJpc2gpICU+JSAKICBzdW1tYXJpemUobiA9IG4oKSkgJT4lIAogIGFycmFuZ2UoZGVzYyhuKSkKYGBgCgoqKlRhYmxlLiBXZWxscyBpbiBoaWdoIHdpbGRmaXJlIHJpc2sgYXJlYXMgYnkgb3BlcmF0b3IqKgoKYGBge3IgZWNobz1GQUxTRX0Kd2VsbHNfa2JkaSAlPiUgCiAgZmlsdGVyKGtiZGlfbWF4XzIwNTAgPj0gNDUwKSAlPiUgCiAgZ3JvdXBfYnkob3BlcmF0b3IpICU+JSAKICBzdW1tYXJpemUobiA9IG4oKSkgJT4lIAogIGFycmFuZ2UoZGVzYyhuKSkKYGBgCgoKIyMgUmVzdWx0cywgMjA5MCB3aWxkZmlyZSByaXNrCgoqKlBsb3QuIEtCREkgaW4gc3R1ZHkgcmVnaW9uKioKCmBgYHtyIGVjaG89RkFMU0V9CmdncGxvdCgpICsKICBnZW9tX3NmKGRhdGEgPSBrYmRpX21heF8yMDkwX3NmLCBhZXMoY29sb3IgPSBrYmRpX21heF8yMDkwKSkgKwogIHNjYWxlX2NvbG9yX3ZpcmlkaXMob3B0aW9uID0gIkIiKSArCiAgZ2VvbV9zZihkYXRhID0gdXNfc3RhdGVzX3dlc3QsIGNvbG9yID0gIndoaXRlIiwgZmlsbCA9IE5BKSArCiAgbGFicyhjb2xvciA9ICJLQkRJIikgKwogIHRoZW1lX21pbmltYWwoKQpgYGAKKipQbG90LiBXZWxscyBpbiBoaWdoIHdpbGRmaXJlIHJpc2sgYXJlYXMgYnkgc3RhdGUqKgoKYGBge3IgZWNobz1GQUxTRX0Kd2VsbHNfa2JkaSAlPiUgCiAgZmlsdGVyKGtiZGlfbWF4XzIwOTAgPj0gNDUwKSAlPiUgCiAgZ3JvdXBfYnkoc3RhdGUpICU+JSAKICBzdW1tYXJpemUobiA9IG4oKSkgJT4lIAogIGdncGxvdCgpICsKICBnZW9tX2JhcihhZXMoc3RhdGUsIG4pLCBzdGF0ID0gImlkZW50aXR5IikgKwogIHRoZW1lX2NsYXNzaWMoKQpgYGAKCioqVGFibGUuIFdlbGxzIGluIGhpZ2ggd2lsZGZpcmUgcmlzayBhcmVhcyBieSBzdGF0ZSoqCgpgYGB7ciBlY2hvPUZBTFNFfQp3ZWxsc19rYmRpICU+JSAKICBmaWx0ZXIoa2JkaV9tYXhfMjA5MCA+PSA0NTApICU+JSAKICBncm91cF9ieShzdGF0ZSkgJT4lIAogIHN1bW1hcml6ZShuID0gbigpKSAlPiUgCiAgYXJyYW5nZShkZXNjKG4pKQpgYGAKCioqVGFibGUuIFdlbGxzIGluIGhpZ2ggd2lsZGZpcmUgcmlzayBhcmVhcyBieSBjb3VudHkqKgoKYGBge3IgZWNobz1GQUxTRX0Kd2VsbHNfa2JkaSAlPiUgCiAgZmlsdGVyKGtiZGlfbWF4XzIwOTAgPj0gNDUwKSAlPiUgCiAgZ3JvdXBfYnkoY291bnR5X3BhcmlzaCkgJT4lIAogIHN1bW1hcml6ZShuID0gbigpKSAlPiUgCiAgYXJyYW5nZShkZXNjKG4pKQpgYGAKCioqVGFibGUuIFdlbGxzIGluIGhpZ2ggd2lsZGZpcmUgcmlzayBhcmVhcyBieSBvcGVyYXRvcioqCgpgYGB7ciBlY2hvPUZBTFNFfQp3ZWxsc19rYmRpICU+JSAKICBmaWx0ZXIoa2JkaV9tYXhfMjA5MCA+PSA0NTApICU+JSAKICBncm91cF9ieShvcGVyYXRvcikgJT4lIAogIHN1bW1hcml6ZShuID0gbigpKSAlPiUgCiAgYXJyYW5nZShkZXNjKG4pKQpgYGAKCg==